package com.zhny.aiot.jdrk.weather.plugin.model;

import com.zhny.aiot.plugin.ActionValue;
import com.zhny.aiot.plugin.PropertyValue;
import com.zhny.aiot.plugin.model.*;
import lombok.Data;

@Data
public class WeatherStoreEntry extends StoreEntity {
    @PropertyValue(alias = "风速",description = "风速",unit = "m/s",icon= IconConstract.Speed,variableType= VariableType.Numerical,actions={
            @ActionValue(name= Operate.Check,commandCode="query",eventType= EventType.Click)
    })
    private double windSpeed;
    @PropertyValue(alias = "风力",description = "风力",unit = "",icon=IconConstract.Speed,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int windPower;
    @PropertyValue(alias = "风向",description = "风向",unit = "",icon=IconConstract.Direction,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int windDirection;
    @PropertyValue(alias = "土壤1湿度",description = "土壤1湿度",unit = "%",icon=IconConstract.Humidity,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilHumidity1;

    @PropertyValue(alias = "土壤1温度",description = "土壤1温度",unit = "°C",icon=IconConstract.Temperature,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilTemperature1;
    @PropertyValue(alias = "土壤1EC",description = "土壤1EC",unit = "us/cm",icon=IconConstract.EC,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int soilEC1;

    @PropertyValue(alias = "土壤1PH",description = "土壤1PH",unit = "",icon= IconConstract.PH,variableType= VariableType.Numerical,actions={
            @ActionValue(name= Operate.Check,commandCode="query",eventType= EventType.Click)
    })
    private double soilPH1;
    @PropertyValue(alias = "土壤2湿度",description = "土壤2湿度",unit = "%",icon=IconConstract.Humidity,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilHumidity2;
    @PropertyValue(alias = "土壤2温度",description = "土壤2温度",unit = "°C",icon=IconConstract.Temperature,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilTemperature2;
    @PropertyValue(alias = "土壤2EC",description = "土壤2EC",unit = "us/cm",icon=IconConstract.EC,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int soilEC2;

    @PropertyValue(alias = "土壤2PH",description = "土壤2PH",unit = "",icon=IconConstract.PH,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilPH2;
    @PropertyValue(alias = "土壤3湿度",description = "土壤3湿度",unit = "%",icon=IconConstract.Humidity,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilHumidity3;
    @PropertyValue(alias = "土壤3温度",description = "土壤3温度",unit = "°C",icon=IconConstract.Temperature,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilTemperature3;
    @PropertyValue(alias = "土壤3EC",description = "土壤3EC",unit = "us/cm",icon=IconConstract.EC,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int soilEC3;

    @PropertyValue(alias = "土壤3PH",description = "土壤3PH",unit = "",icon=IconConstract.PH,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilPH3;

    @PropertyValue(alias = "露点温度",description = "露点温度",unit = "°C",icon=IconConstract.Temperature,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double dewPointTemperature;
    @PropertyValue(alias = "土壤4湿度",description = "土壤4湿度",unit = "%",icon=IconConstract.Humidity,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilHumidity4;
    @PropertyValue(alias = "土壤4温度",description = "土壤4温度",unit = "°C",icon=IconConstract.Temperature,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double soilTemperature4;

    @PropertyValue(alias = "日照时数",description = "日照时数",unit = "h",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double sunlightHours;

    @PropertyValue(alias = "光学雨量",description = "光学雨量",unit = "mm",icon=IconConstract.Rain,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double opticalRainfall;
    @PropertyValue(alias = "空气湿度",description = "空气湿度",unit = "%RH",icon=IconConstract.Humidity,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double airHumidity;
    @PropertyValue(alias = "空气温度",description = "空气温度",unit = "°C",icon=IconConstract.Temperature,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double airTemperature;

    @PropertyValue(alias = "噪声",description = "噪声",unit = "dB",icon=IconConstract.Noise,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double noise;

    @PropertyValue(alias = "CO2浓度",description = "CO2浓度",unit = "ppm",icon=IconConstract.Co2,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int co2Concentration;
    @PropertyValue(alias = "大气压力",description = "大气压力",unit = "Kpa",icon=IconConstract.Pressure,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double atmosphericPressure;
    @PropertyValue(alias = "光照",description = "光照",unit = "Lux",icon=IconConstract.Illumination,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private long illumination;

    @PropertyValue(alias = "雨雪",description = "雨雪",unit = "",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private String rainAndSnow;

    @PropertyValue(alias = "紫外线指数",description = "紫外线指数",unit = "",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int uvIndex;
    @PropertyValue(alias = "总辐射",description = "总辐射",unit = "W/m2",icon=IconConstract.Radiat,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int totalRadiation;
    @PropertyValue(alias = "光合有效辐射",description = "光合有效辐射",unit = "μmol/㎡·s",icon=IconConstract.Radiat,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int photosyntheticallyActiveRadiation;

    @PropertyValue(alias = "累计雨量",description = "累计雨量",unit = "mm",icon=IconConstract.Rain,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double accumulatedRainfall;

    @PropertyValue(alias = "当前雨量",description = "当前雨量",unit = "mm",icon=IconConstract.Rain,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double currentRainfall;

    @PropertyValue(alias = "瞬时雨量",description = "瞬时雨量",unit = "mm",icon=IconConstract.Rain,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double instantaneousRainfall;

    @PropertyValue(alias = "日雨量",description = "日雨量",unit = "mm",icon=IconConstract.Rain,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double dailyRainfall;
    @PropertyValue(alias = "O3浓度",description = "O3浓度",unit = "ppm",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int o3Concentration;

    @PropertyValue(alias = "CO浓度",description = "CO浓度",unit = "ppm",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int coConcentration;

    @PropertyValue(alias = "SO2浓度",description = "SO2浓度",unit = "ppm",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int so2Concentration;

    @PropertyValue(alias = "NO2浓度",description = "NO2浓度",unit = "ppm",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int no2Concentration;

    @PropertyValue(alias = "O2浓度",description = "O2浓度",unit = "%VO",icon=IconConstract.O2,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double o2Concentration;

    @PropertyValue(alias = "H2S浓度",description = "H2S浓度",unit = "ppm",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private double h2sConcentration;

    @PropertyValue(alias = "蒸发量",description = "蒸发量",unit = "mm",icon=IconConstract.Other,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int evaporationCapacity;

    @PropertyValue(alias = "PM2.5",description = "PM2.5",unit = "ug/m3",icon=IconConstract.Pm2_5,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int pm2_5;

    @PropertyValue(alias = "PM10",description = "PM10",unit = "ug/m3",icon=IconConstract.Pm10,variableType=VariableType.Numerical,actions={
            @ActionValue(name=Operate.Check,commandCode="query",eventType=EventType.Click)
    })
    private int pm10;
}
